Apparatus and method of generating codebook for multiple input multiple output communication system

ABSTRACT

An apparatus and method of generating a codebook. The codebook generation apparatus includes a matrix extender to generate a candidate matrix set by multiplying a base matrix and at least one diagonal matrix, wherein the at least one diagonal matrix includes elements of a constrained set as diagonal elements; and a codebook generator to generate the codebook where a minimum distance between the elements is maximized, based on the candidate matrix set. According to aspects of the present invention, it is possible to provide a precoding codebook that can reduce an amount of feedback from a terminal.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 60/911,593, filed on Apr. 13, 2007, and No. 60/929,009, filed on Jun. 8, 2007, in the U.S. Patent and Trademark Office, and the benefit of Korean Patent Application No. 2007-100650, filed on Oct. 5, 2007 in the Korean Intellectual Property Office, the disclosures of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

Aspects of the present invention relate to a multiple input multiple output (MIMO) communication system, and more particularly, to a closed-loop communication control scheme that can feed back channel information from a user equipment to a base station.

2. Description of the Related Art

A multiple input multiple output (MIMO) communication system is a system that can transmit and receive data between at least one base station and at least one user equipment. In the MIMO communication scheme, since each base station and user equipment includes a plurality of antennas, it is possible to improve the efficiency of transmitting and receiving data.

The MIMO communication system can simultaneously transmit data from the base station to the user equipment using a plurality of antennas and also may improve a transmission rate of information by a spatial division multiple access (SDMA) scheme. The SDMA scheme allocates a plurality of spatial beams to the user equipment and transmits data to the user equipment using each of the spatial beams. A process of allocating the spatial beams is referred to as “precoding” or “beamforming.” A precoding process or a beamforming process may be performed through the computation with respect to a matrix or a vector.

The precoding process or the beamforming process can adopt a scheme in which a base station is aware of information about a communication channel that reaches a user equipment, or a scheme in which a user equipment can feed back channel information to a base station. A channel information feedback scheme is a closed-loop communication control scheme.

The closed-loop communication control scheme is advantageous in that it is possible to accurately reflect a channel state changing over time. However, a user equipment included in a communication system should compute a channel feature according to the change of the channel state. Therefore, hardware of the user equipment becomes complex.

Accordingly, there is a need for an apparatus and method of generating a codebook that can maintain advantages of a closed-loop communication control scheme applied in a MIMO communication system and also can be easily realized in hardware of a user equipment.

SUMMARY OF THE INVENTION

Aspects of the present invention provide an apparatus and method of generating a codebook that can maintain advantages of a closed-loop communication control scheme applied in a multiple input multiple output (MIMO) communication system and also can be easily realized in hardware of a user equipment.

Other aspects of the present invention also provide an apparatus and method of generating a codebook that can more effectively transmit data in comparison to a conventional data transmission mode selecting method with respect to a user equipment, even in an environment where a value that describes a channel feature is constrained.

According to an aspect of the present invention, an apparatus to generate a codebook to transmit and receive data to and from a plurality of user equipment is provided. The apparatus includes a matrix extender to generate a candidate matrix set by multiplying a base matrix and at least one diagonal matrix, wherein the at least one diagonal matrix includes elements of a constrained set as diagonal elements; and a codebook generator to generate the codebook where a minimum distance between the elements is maximized, based on the candidate matrix set.

According to another aspect of the present invention, a method of generating a codebook to transmit and receive data is provided. The method includes generating a candidate matrix set by multiplying a base matrix and at least one diagonal matrix, wherein the at least one diagonal matrix includes elements of a constrained set as diagonal elements; and generating the codebook where a minimum distance between the elements is maximized, based on the candidate matrix set.

Additional aspects and/or advantages of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

These and/or other aspects and advantages of the invention will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:

FIG. 1 illustrates a MIMO communication system adopting an apparatus or method of generating a codebook according to an embodiment of the present invention;

FIG. 2 illustrates a process of generating a candidate matrix set using an apparatus and method of generating a codebook according to an embodiment of the present invention;

FIG. 3 is a block diagram illustrating an apparatus of generating a codebook according to an embodiment of the present invention;

FIG. 4 is a flowchart illustrating a method of generating a codebook according to an embodiment of the present invention;

FIG. 5 illustrates a portion of a codebook generation process that is performed by the codebook generator shown in FIG. 3;

FIG. 6 is a block diagram illustrating an example of the codebook generator shown in FIG. 3;

FIG. 7 is a block diagram illustrating another example of the codebook generator shown in FIG. 3;

FIG. 8 illustrates an example of a candidate matrix set that is generated by the matrix extender shown in FIG. 3;

FIG. 9 illustrates examples of an optimized matrix set for each rank that is generated by searching of the rank optimization unit shown in FIG. 7;

FIG. 10 illustrates an example of preliminary candidate matrices shown in FIG. 8;

FIG. 11 illustrates another example of preliminary candidate matrices shown in FIG. 8;

FIG. 12 illustrates still another example of preliminary candidate matrices shown in FIG. 8; and

FIG. 13 is a block diagram illustrating an apparatus of generating a codebook according to another embodiment of the present invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

Reference will now be made in detail to present embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The exemplary embodiments are described below in order to explain the present invention by referring to the figures.

FIG. 1 shows a multiple input multiple output (MIMO) communication system adopting an apparatus or method of generating a codebook according to an embodiment of the present invention. The MIMO communication system transmits a signal packet 110 to any one of, for example, a user equipment UEn 150, of a plurality of user equipments UE1 140 through UEn 150 via a precoder 120 and a transmitter 130.

The precoder 120 allocates the signal packet 110 to a plurality of antennas of the transmitter 130 at different ratios, based on appropriate power distribution, improvement of transmission efficiency, and the like. A process performed by the precoder 120 is generally referred to as “precoding,” and may be performed through a computation process of multiplying a matrix, including a plurality of spatial beams, by a vector corresponding to the signal packet 110.

Each of the spatial beams may correspond to a spatial direction that is transmitted from a base station to each of the user equipment UE1 140 through UEn 150. In single user MIMO systems, the precoder 120 determines the number of data streams transmitted to any one of, for example, the UE1 140. In this case, each vector corresponds to a data stream transmitted to the UE1 140.

A number of rows or columns of the matrix to be multiplied in the precoding process may be determined by the number of transmitting antennas at the base station. For example, when four transmitting antennas are at the base station, the matrix may have four rows. When four transmitting antennas are at the base station, a maximum of four data streams in the signal packet 110 may be simultaneously transmitted. The number of data streams that can be simultaneously transmitted may be adjusted to any one of 1 through 4, depending on a communication environment. The adjusted number of data streams that can be simultaneously transmitted is generally referred to as a transmission rank.

The matrix to be multiplied in the precoding process may be determined based on a communication channel feature from the base station to the user equipment. An open-loop communication control scheme is a scheme in which the base station pre-stores information about the communication channel feature and determines a matrix based on the pre-stored information during the precoding process. In contrast, a closed-loop communication control scheme is a scheme in which each user equipment computes the communication channel feature using a pilot signal and feeds back information about the computed communication channel feature to the base station to determine the matrix based on the fed back information.

In the case of the open-loop communication control scheme, the base station may not accurately identify information about an instantaneously changing communication channel feature. In the case of the closed-loop communication control scheme, the base station may accurately identify information about the communication channel feature. However, hardware should be installed in the user equipment in order to compute information about the communication channel feature. When a great amount of information is fed back from the user equipment, a load of the base station also increases due to processing of the fed back information.

Conversely, despite the above-described disadvantages, the closed-loop communication control scheme is widely used since the closed-loop communication control scheme can accurately identify information about instantaneously changing communication scheme features. According to one aspect of the present invention, a scheme is provided that can constrain elements of a matrix to be multiplied during the precoding process within a predetermined range and thereby can simplify a computation process of channel feature information at each user equipment. According to an aspect of the present invention, an apparatus and method of generating a codebook is provided, which can optimize a data transmission efficiency in the precoding process where only values within a predetermined range are used as elements of a matrix.

The codebook generation apparatus and method may generate a codebook that has N elements. When N is a natural number that satisfies N=2^(B), the precoding process and the process of computing information about a communication channel feature at a user equipment may be simplified.

The codebook generation apparatus and method may generate a constrained set by collecting the values within the predetermined range. The values may be selected from real numbers and also from complex numbers within the predetermined range. In the present specification, j is used as an imaginary number unit. Since the value within the predetermined range includes a combination of the real number and the imaginary number j, the combination may be referred to as “alphabet.”

The constrained set may be {1, −1, j, −j}. Each element of the constrained set {1, 1, j, −j} exists on a unit circumference of a complex plane and hangs over four axes. Therefore, a unitary matrix may be readily generated from the elements of the constrained set {1, −1, j, −j}. All the distances between the elements of the constrained set {1, −1, j, −j} are constant. The elements may correspond to a transmission symbol of a quadrature phase shift keying (QPSK) scheme. According to an aspect of the present invention, a combination of each element of the constrained set {1, 1, j, −j} may build vectors. If those vectors are used as precoders, then those vectors may correspond to a spatial domain that forms spatial beams at the base station.

The user equipment computes channel quality information (CQI) by reflecting the instantaneously changing channel features and feeds back the computed CQI to the base station. In an aspect of the present invention, elements of the codebook may use only a constrained alphabet. Therefore, the user equipment may easily compute CQI and hardware of the user equipment may be simplified.

FIG. 2 shows an example of a process of generating a candidate matrix set using an apparatus and method of generating a codebook according to an embodiment of the present invention. As shown in FIG. 2, in the process of generating the candidate matrix set, the generated example of candidate matrix set including eight matrices is generated.

For example, when the base station has four transmitting antennas, a maximum of four data streams may be simultaneously transmitted. Therefore, a precoding matrix is a 4×4 matrix. As shown in FIG. 2, W₁ is a 4×4 identity matrix. W₂ and W₃ are diagonal matrices or block diagonal matrices. A matrix W₄ is selected as a base matrix X_(b) during the process of generating the candidate matrix set. The matrix W₄ is a matrix that is generated by a digital Fourier transform (DFT). According to other aspects of the present invention, the matrices W₁, W₂, W₃, and W₄ may have different forms.

Diagonal matrices D₁, D₂, D₃, and D₄ are selected during the process of generating the candidate matrix set. The diagonal matrices D₁, D₂, D₃, and D₄ select elements of the constrained set {1, −1, j, −j} as diagonal elements.

For example, the diagonal matrix D₁ may be selected according to Equation 1:

$\begin{matrix} {D_{1} = {\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & j & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & {- j} \end{bmatrix}.}} & \left\lbrack {{Equation}\mspace{14mu} 1} \right\rbrack \end{matrix}$

For example, when it is a goal to generate the candidate matrix set having eight elements during the process of generating the candidate matrix set, four matrices should be additionally generated in addition to four preliminary candidate matrices W₁, W₂, W₃, and W₄ that exist before the candidate matrix set generation process. The additionally generated four matrices may be obtained by multiplying the selected diagonal matrices D₁, D₂, D₃, and D₄ by the base matrix W₄.

FIG. 3 shows an example of apparatus 300 to generate a codebook according to an embodiment of the present invention. The codebook generation apparatus 300 includes a matrix extender 310 and a codebook generator 320. According to other aspects of the present invention, the codebook generation apparatus 300 may include additional and/or other units. Similarly, the functionality of the above units may be integrated into a single component.

The matrix extender 310 generates a candidate matrix set by multiplying a base matrix and at least one diagonal matrix. The at least one diagonal matrix includes elements of a constrained set as diagonal elements.

The codebook generator 320 generates the codebook where a minimum distance between the elements is maximized, based on the candidate matrix set. According to an aspect of the present invention, an element of the codebook may be a matrix that includes a predetermined number of columns based on a number of simultaneously transmitted data streams. As described above, the adjusted number of data streams that can be simultaneously transmitted to a plurality of user equipment is referred to as a transmission rank. For example, when four transmitting antennas are at the base station, the transmission rank may have a value of 1 through 4. For example, when four transmitting antennas are at the base station and the transmission rank is two, elements of the codebook may be 4×2 matrices.

According to an aspect of the present invention, the elements of the codebook may be obtained from the pre-generated preliminary candidate matrices in addition to the generated candidate matrix set. The candidate matrix set may also be generated by multiplying the base matrix and all the diagonal matrices that are obtainable from the elements of the constrained set. The constrained set may be {1, −1, j, −j}.

For example, when M transmitting antennas are at the base station and the transmission rank is k, the base matrix is an M×M unitary matrix and the diagonal matrix to be multiplied with the base matrix is an M×M diagonal matrix. When the constrained set includes A elements, A^(M) number of M×M diagonal matrices are available. Among those A^(M) number of M×M diagonal matrices, a complex number fold of the identity matrix may be regarded as to be equivalent of the identity matrix. Therefore, (A^(M-1)−1) number of M×M diagonal matrices may be considered.

When n preliminary candidate matrices are generated, the number of candidate matrices that can be considered in generating the codebook may be (A^(M-1)+n−1). For example, when M transmitting antennas are at the base station and the transmission rank is k, the number of cases where k columns are selected from M columns of each candidate matrix is

$\begin{pmatrix} M \\ k \end{pmatrix}.$

Therefore, a total of M×k matrices that can be considered in generating the codebook is

$\left( {A^{M - 1} + n - 1} \right) \times {\begin{pmatrix} M \\ k \end{pmatrix}.}$

For example, when the number of elements of the codebook is pre-set to N, the

codebook generator 320 generates

$\begin{pmatrix} {\left( {A^{M - 1} + n - 1} \right)\begin{pmatrix} M \\ k \end{pmatrix}} \\ N \end{pmatrix}\quad$

combinations of M×k matrices where N are selected from the total of

$\left( {A^{M - 1} + n - 1} \right) \times \begin{pmatrix} M \\ k \end{pmatrix}$

number of M×k matrices. The codebook generator 320 selects the optimal combination where the minimum distance between M×k matrices in the generated combination is maximized and generates the selected optimal combination as the codebook.

The codebook generation process performed by the codebook generator 320 of FIG. 3 will be described with reference to FIGS. 5 and 6. FIG. 5 shows an example of a codebook generation process that is performed by the codebook generator 320 of FIG. 3. As shown in FIG. 5, the codebook generator 320 selects two columns from each element of the candidate matrix set and generates a set 530 where rank matrices are extended.

The codebook generation process shown in FIG. 5 may be applied to an environment where four transmitting antennas are at the base station and two data streams are simultaneously transmitted. Elements of the candidate matrix set constitute a 4×4 matrix and a rank matrix that includes the same number of columns as the number of simultaneously transmitted data streams is a 4×2 matrix.

FIG. 6 shows an example of the codebook generator 320 shown in FIG. 3. The codebook generator 320 includes a rank matrix generator 610 and a rank matrix selector 620. The rank matrix generator 610 generates rank matrices from each element of the candidate matrix set. Each of the rank matrices includes the same number of columns as the number of simultaneously transmitted data streams. The rank matrix selector 620 selects a predetermined number of rank matrices from the rank matrices and generates the codebook.

For example, the rank matrix generator 610 may select two respective columns from four columns of a 4×4 matrix 510 (shown in FIG. 5) and generate 6 (=₄C₂) rank matrices. The rank matrix generator 610 may also select two respective columns from four columns of a 4×4 matrix 520 (shown in FIG. 5) and generate 6 rank matrices.

When the number of elements of a codebook is pre-set to N, the rank matrix selector 620 may generate combinations of rank matrices, from rank matrices of the extended set 530. Each combination may include N rank matrices. The rank matrix selector 620 finally selects a combination of rank matrices where the minimum distance between rank matrices within the combinations is maximized, and generates the selected combination of rank matrices as the codebook.

FIG. 7 shows another example of the codebook generator 320 shown in FIG. 3. The codebook generator 320 includes a rank optimization unit 710 and a codebook matrix selector 720.

The rank optimization unit 710 generates an optimized matrix set for each rank that includes optimized elements. Each rank denotes one of the simultaneously transmitted data streams. According to an aspect of the present invention, the rank optimization unit 710 may generate the optimized matrix set for each rank that includes optimized elements so that the minimum distance between columns is maximized. Each element includes the same number of columns as the number of simultaneously transmitted data streams. The codebook matrix selector 720 generates, as the codebook, a set of matrices that are common among the optimized matrix sets for each rank.

When M transmitting antennas are at the base station, for example, a maximum of M data streams may be simultaneously transmitted. Therefore, the transmission rank may have a value of 1 through M. The rank optimization unit 710 may search for a combination or combinations of optimized matrices with respect to transmission rank 1.

When the rank optimization unit 710 searches more than one combination of optimized matrices with respect to transmission rank 1, the rank optimization unit 720 searches the combinations of optimized matrices with respect to transmission rank 2 from among the combinations of optimized matrices with respect to transmission rank 1. Through the above scheme, the rank optimization unit 710 may search for the combination of optimized matrices with respect to all possible transmission ranks 1 through M and generate an optimized matrix set for each rank.

FIG. 8 shows an example of a candidate matrix set that is generated by the matrix extender 310 of FIG. 3. A candidate matrix set (Set 1) 810 includes W₁₁, W₁₂, W₁₃, W₁₄ that are preliminary candidate matrices to be input in the matrix extender 310. The matrix extender 310 extends four preliminary candidate matrices W₁₁, W₁₂, W₁₃, and W₁₄ and generates the candidate matrix set (Set 1) 810, another candidate matrix set (Set 2) 820, and still another candidate matrix set (Set L) 830.

It is assumed that following relations are achieved:

W_(i1)=W₁∀i=1 to L

W_(i2)=W₂∀i=1 to L

W_(i3)=W₃∀i=1 to L

W_(i4)=W₄∀i=1 to L

The matrix extender 310 selects the fourth preliminary candidate matrix, W_(i4)=W₄∀i=1 to L, as the base matrix X_(b), multiplies the base station X_(b) by each of four diagonal matrices and generates the candidate matrix sets (Set 1, Set 2, and Set L) 810, 820, and 830. Under the above assumptions, the base matrix of each candidate matrix set is the same, for example, W₄, and thus each candidate matrix set is determined by the four diagonal matrices to be multiplied with the base matrix X_(b).

The candidate matrix set (Set 1) 810 includes matrices that are generated by multiplying four preliminary candidate matrices and the base matrix by four diagonal matrices D₁₁, D₁₂, D₁₃, and D₁₄, respectively. The candidate matrix set (Set 2) 820 includes matrices that are generated by multiplying four preliminary candidate matrices and the base matrix by four diagonal matrices D₂₁, D₂₂, D₂₃, and D₂₄, respectively. The candidate matrix set (Set L) 830 includes matrices that are generated by multiplying four preliminary candidate matrices and the base matrix by four diagonal matrices D_(L1), D_(L2), D_(L3), and D_(L4), respectively.

Referring again to FIG. 7, the rank optimization unit 710 searches L candidate matrix sets for candidate matrix sets where the minimum distance between columns is maximized with respect to a rank 1.

FIG. 9 shows examples of an optimized matrix set for each rank that is generated by searching of the rank optimization unit 710. An optimized matrix set for rank 1, that is, Set_rank1 910, is generated in such a manner that the rank optimization unit 710 performs searching with respect to the rank 1. Set_rank1 910 includes the candidate matrix set (Set 1) 810, the candidate matrix set (Set 2) 820, and another candidate matrix set (Set 5). In this instance, Set_rank1 910 includes elements greater than one, and thus the rank optimization unit 710 searches the elements of Set_rank1 910 for candidate matrix sets that are optimized with respect to a rank 2.

The rank optimization unit 710 searches the elements of Set_rank1 910 for candidate matrix sets where the minimum distance between two columns is maximized. Another optimized matrix set for rank 2, Set_rank2 920, is generated in such a manner that the rank optimization unit 710 performs searching with respect to the rank 2. Set_rank2 920 includes the candidate matrix sets (Set 1) 810 and (Set 2) 820.

Since Set_rank2 920 includes more than one element, and thus the rank optimization unit 710 searches the elements of Set_rank2 920 for candidate matrix sets that are optimized with respect to a rank 3. The rank optimization unit 710 searches the elements of Set_rank2 920 for candidate matrix sets where the minimum distance between three columns is maximized. Still another optimized matrix set for the rank 3, Set_rank3 930, is generated in such a manner that the rank optimization unit 710 performs searching with respect to the rank 3. Set_rank3 930 includes the candidate matrix sets (Set 1) 810 and (Set 2) 820.

Since Set_rank3 930 includes more than one element, the rank optimization unit 710 searches the elements of Set_rank3 930 for candidate matrix sets that are optimized with respect to a rank 4. The rank optimization unit 710 searches the elements of Set_rank3 930 for candidate matrix sets where the minimum distance between four columns is maximized. Still another optimized matrix set for the rank 4, Set_rank4 940, is generated in such a manner that the rank optimization unit 710 performs searching with respect to the rank 4. Set_rank4 940 includes only the candidate matrix set (Set 2) 820. In this instance, Set_rank4 940 includes only one element and thus the rank optimization unit 710 stops searching and transfers Set_rank4 940 to the codebook matrix selector 720. The codebook matrix selector 720 selects Set_rank4 940 as the codebook and generates the codebook. Depending on embodiments, the rank optimization unit 710 may independently generate the optimized matrix set for each rank, with respect to each transmission rank.

According to an aspect of the present invention, the codebook matrix selector 720 may search for only matrices that are common among the optimized matrix sets for each rank and select the found matrices as elements of the codebook. When a great number of matrices are common among all the optimized matrix sets for each rank, the elements of the codebook may be randomly selected from the common matrices. The number of elements of the codebook may be predetermined at the base station.

A scheme of computing the distance between matrices or columns of each matrix may use a chordal distance computation scheme, a Fubini-study scheme, or the like. Any type of scheme capable of computing the distance between matrices may be used for the codebook generation apparatus 300.

According to another aspect of the present invention, the codebook generation apparatus 300 may select as a base matrix a matrix that is generated by DFT. An identity matrix and the DFT matrix, selected as the base matrix, may be preliminary candidate matrices. For example, when four transmitting antennas are at the base station, a 4×4 identity matrix becomes a preliminary candidate matrix W₁ and the matrix that is generated by the DFT may be selected as another preliminary candidate matrix W₂. An example of W₂, the matrix that is generated by the DFT, may be represented as Equation 2:

$\begin{matrix} {W_{2} = {{\frac{1}{\sqrt{4}}\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & j & {- 1} & {- j} \\ 1 & {- 1} & 1 & {- 1} \\ 1 & {- j} & {- 1} & j \end{bmatrix}}.}} & \left\lbrack {{Equation}\mspace{14mu} 2} \right\rbrack \end{matrix}$

Depending on embodiments, a diagonal matrix or a block diagram matrix may be further included in the preliminary candidate matrix W₂. A block diagonal matrix D′ may represent a matrix, given by Equation 3:

$\begin{matrix} {D^{\prime} = {\begin{bmatrix} {A\; 0} \\ {0B} \end{bmatrix}.}} & \left\lbrack {{Equation}\mspace{14mu} 3} \right\rbrack \end{matrix}$

For example, when the block diagonal matrix D′ is a 4×4 matrix, each of A and B may be a 2×2 matrix. Depending on embodiments, a rotated block diagonal matrix may be further included in the preliminary candidate matrix W₂.

According to another aspect of the present invention, the codebook generation apparatus 300 may generate a codebook that includes 2^(B) elements. According to still another aspect of the present invention, the codebook generation apparatus 300 may generate as a base matrix a Hadamard matrix that satisfies orthogonality.

FIG. 10 shows an example of preliminary candidate matrices shown in FIG. 8. The preliminary candidate matrices include matrices W₁ 1010, W₂ 1020, W₃ 1030, and W₄ 1040. The matrix 1010 is an identity matrix. The matrices 1020, 1030, and 1040 are generated by DFT. The matrix extender 310 selects the matrix W₄ 1040 as the base matrix. When preliminary candidate matrices are an identity matrix and matrices that are generated by the DFT, the matrix extender 310 selects as the base matrix any one of the matrices that are generated by the DFT.

FIG. 11 shows another example of preliminary candidate matrices shown in FIG. 8. As shown in FIG. 11, the preliminary candidate matrices include matrices W₁ 1110, W₂ 1120, W₃ 1130, and W₄ 1140. The matrices 1110, 1120, 1130, and 1140 are generated by the DFT. The matrix extender 310 selects the matrix W₄ 1140 as the base matrix. When all the preliminary candidate matrices are matrices that are generated by the DFT, the matrix extender 310 randomly selects as the base matrix any one of the matrices that are generated by the DFT.

FIG. 12 shows still another example of the preliminary candidate matrices shown in FIG. 8. As shown in FIG. 12, the preliminary candidate matrices include matrices W₁ 1210, W₂ 1220, W₃ 1230, and W₄ 1240. The matrix 1210 is an identity matrix. The matrices 1220 and 1230 are block diagonal matrices. The matrix 1240 is generated by DFT. The matrix extender 310 selects the matrix W₄ 1240 as the base matrix. When preliminary candidate matrices are an identity matrix, a block diagonal matrix, and matrices that are generated by the DFT, the matrix extender 310 selects as the base matrix any one of the matrices that are generated by the DFT.

FIG. 13 shows an apparatus 1300 to generate a codebook according to another aspect of the present invention. The codebook generation apparatus 1300 includes a matrix extender 1310, a second matrix extender 1320, and a codebook generator 1330.

The matrix extender 1310 generates a candidate matrix set by multiplying a base matrix and at least one diagonal matrix. The at least one diagonal matrix includes elements of a constrained set as diagonal elements. The second matrix extender 1320 performs a householder transform with respect to each of columns of a second base matrix and generates a second candidate matrix set. The codebook generator 1330 generates the codebook based on the candidate matrix set and the second candidate matrix set.

The matrix extender 1310 selects as a base matrix a matrix W₁ that includes elements of a constrained set {1, −1, j, −j}. The matrix W₁ is a matrix that is generated by DFT. An example of the matrix W₁ may be represented as Equation 4:

$\begin{matrix} {W_{1} = {{\frac{1}{2}\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & j & {- 1} & {- j} \\ 1 & {- 1} & 1 & {- 1} \\ 1 & {- j} & {- 1} & j \end{bmatrix}}.}} & \left\lbrack {{Equation}\mspace{14mu} 4} \right\rbrack \end{matrix}$

The matrix extender 1310 generates candidate matrices W₂ and W₃ by multiplying the base matrix W1 by diagonal matrices that include elements of the constrained set {1, −1, j, −j} as diagonal elements. Examples of the matrices W₂ and W₃ may be represented as Equation 5:

$\begin{matrix} {{{W_{2} = {{\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & {- 1} \end{bmatrix} \times W_{1}} = {\frac{1}{2}\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & j & {- 1} & {- j} \\ 1 & {- 1} & 1 & {- 1} \\ {- 1} & j & 1 & {- j} \end{bmatrix}}}},{and}}{W_{3} = {{\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & j & 0 \\ 0 & 0 & 0 & j \end{bmatrix} \times W_{1}} = {{\frac{1}{2}\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & j & {- 1} & {- j} \\ j & {- j} & j & {- j} \\ j & 1 & {- j} & {- 1} \end{bmatrix}}.}}}} & \left\lbrack {{Equation}\mspace{14mu} 5} \right\rbrack \end{matrix}$

Elements of a second base matrix are not limited to the constrained set {1, −1, j, −j}. For example, the second matrix extender 1320 may select a matrix U as a second base matrix. The matrix U includes as an element the complex number corresponding to an 8-phase shift keying (PSK) scheme. An example of the second base matrix U may be represented as Equation 6:

$\begin{matrix} {U = {{\frac{1}{2}\begin{bmatrix} {- 1} & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}} \times {\begin{bmatrix} 1 & 1 & 1 & 1 \\ \frac{1 + j}{\sqrt{2}} & \frac{{- 1} + j}{\sqrt{2}} & \frac{{- 1} - j}{\sqrt{2}} & \frac{1 - j}{\sqrt{2}} \\ j & {- j} & j & {- j} \\ \frac{{- 1} + j}{\sqrt{2}} & \frac{1 + j}{\sqrt{2}} & \frac{1 - j}{\sqrt{2}} & \frac{{- 1} - j}{\sqrt{2}} \end{bmatrix}.}}} & \left\lbrack {{Equation}\mspace{14mu} 6} \right\rbrack \end{matrix}$

The second matrix extender 1320 may perform householder transform with respect to a first column of the second base matrix U and thereby generate a second candidate matrix W₄. The second candidate matrix W₄ may be represented as Equation 7:

W ₄ =I ₄−2u ₁ u ₁ ^(H).  [Equation 7]

I₄ is a 4×4 identity matrix and u₁ is a column vector that includes the first column of the second base matrix U.

The second matrix extender 1320 may perform householder transform with respect to a second column of the second base matrix U and thereby generate another second candidate matrix W₅. The second candidate matrix W₅ may be represented as Equation 8:

W ₅ =I ₄−2u ₂ u ₂ ^(H).  [Equation 8]

u₂ is a column vector that includes the second column of the second base matrix U.

The second matrix extender 1320 may perform householder transform with respect to a third column of the second base matrix U and thereby generate another second candidate matrix W₆. The second candidate matrix W₆ may be represented as Equation 9:

W ₆ =I ₄−2u ₃ u ₃ ^(H).  [Equation 9]

u₃ is a column vector that includes the third column of the second base matrix U.

The second matrix extender 1320 may perform householder transform with respect to a fourth column of the second base matrix U and thereby generate another second candidate matrix W₇. The second candidate matrix W₇ may be represented as Equation 10:

W ₇ =I ₄−2u ₄ u ₄ ^(H).  [Equation 10]

u₄ is a column vector that includes the fourth column of the second base matrix U.

The second candidate matrix set may include four second candidate matrices W₄, W₅, W₆, and W₇. The codebook generator 1330 generates a codebook of a transmission rank 1 from all columns of the candidate matrices W₁, W₂, and W₃ and first columns of the second candidate matrices W₄, W₅, W₆, and W₇.

Depending on embodiments, when the transmission rank is 2 or 3, the codebook generator 1330 may select from combinations of all columns of the candidate matrices W₁, W₂, and W₃ and the second candidate matrices W₄, W₅, W₆, and W₇, a combination of columns where the minimum distance between columns is maximized. The codebook generator 1330 generates the codebook based on the selected combination of columns.

Depending on embodiments, the matrix extender 1310 may select the candidate matrices W₁ and W₂ as block diagonal matrices. The matrix extender 1310 may generate the candidate matrix W₃ using the DFT.

Another example of the candidate matrices W₁, W₂, and W₃ may be represented as Equation 11:

$\begin{matrix} {{{W_{1} = {\frac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 & 0 & 0 \\ 1 & {- 1} & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & {- 1} \end{bmatrix}}},{W_{2} = {\frac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 & 0 & 0 \\ j & {- j} & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & j & {- j} \end{bmatrix}}},{and}}{W_{3} = {{\frac{1}{2}\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & j & {- 1} & {- j} \\ 1 & {- 1} & 1 & {- 1} \\ 1 & {- j} & {- 1} & j \end{bmatrix}}.}}} & \left\lbrack {{Equation}\mspace{14mu} 11} \right\rbrack \end{matrix}$

Depending on embodiments, the matrix extender 1310 may select the candidate matrix W₁ as a 4×4 identity matrix. The matrix extender 1310 may generate the candidate matrix W₂ using the DFT. The matrix extender 1310 may generate the candidate matrix W₃ by multiplying the candidate matrix W₂ by a diagonal matrix. Another example of the candidate matrices W₂ and W₃ may be represented as Equation 12:

$\begin{matrix} {{{{W_{2} = {\frac{1}{2}\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & j & {- 1} & {- j} \\ 1 & {- 1} & 1 & {- 1} \\ 1 & {- j} & {- 1} & j \end{bmatrix}}},{and}}{W_{3} = {{\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & {- 1} \end{bmatrix} \times W_{2}} = {{\frac{1}{2}\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & j & {- 1} & {- j} \\ 1 & {- 1} & 1 & {- 1} \\ {- 1} & j & 1 & {- j} \end{bmatrix}}.}}}}} & \left\lbrack {{Equation}\mspace{14mu} 12} \right\rbrack \end{matrix}$

Depending upon embodiments, the constrained set may include complex numbers corresponding to points that are generated by dividing the circumference of the complex plane into eight portions. Elements of the constrained set may be complex numbers corresponding to an 8-PSK scheme.

FIG. 4 is a flowchart of a process of generating a codebook according to another aspect of the present invention. In operation S410, a candidate matrix set is generated by multiplying a base matrix and at least one diagonal matrix. The at least one diagonal matrix includes elements of a constrained set as diagonal elements. According to other aspects of the present invention, the candidate matrix set can be generated by multiplying the base matrix and all the diagonal elements that are obtainable from the elements of the constrained set.

In operation S420, a codebook where a minimum distance between the elements is maximized is generated, based on the candidate matrix set. According to some aspects of the present invention, an element of the codebook may be a matrix that includes a predetermined number of columns based on a number of simultaneously transmitted data streams, that is, a transmission rank. For example, when M transmitting antennas are at the base station and a transmission rank is R, the element of the codebook is an M×R matrix.

Operation S420 may include generating an optimized matrix set for each rank that includes optimized elements, with respect to all possible cases of the number of simultaneously transmitted data streams. In the generating of the optimized matrix set, the optimized matrix set for each rank may be generated from the optimized elements so that the minimum distance between the same number of columns as the transmission rank may be maximized. For example, when M transmitting antennas are at the base station, the possible transmission rank should be any one of 1 through M. Therefore, the optimized matrix set may be generated for each transmission rank by searching for the optimal combination with respect to the transmission rank of 1 through M.

Operation S420 may include an operation of generating, as the codebook, a matrix set that is common among the optimized matrix sets for each rank. Depending on embodiments, operation S420 may include generating the codebook based on a preliminary candidate matrix set, the base matrix, and the candidate matrix set. The preliminary candidate matrix set may include matrices with only the elements of the constrained set. Depending on embodiments, operation S420 may further include an operation of performing householder transform with respect to each of columns of a second base matrix and generate a second candidate matrix set.

According to other aspects of the present invention, in operation S420, the codebook may be generated based on the candidate matrix set and the second candidate matrix set. The constrained set may be {1, −1, j, −j}. The codebook may include 2^(B) elements.

Aspects of the present invention can also be embodied as computer-readable codes on a computer-readable recording medium and can be realized in a common digital computer executing the program using a computer-readable recording medium. The computer-readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer-readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, DVDs, magnetic tapes, floppy disks, and optical data storage devices. Aspects of the present invention may also be embodied as a computer data signal in a carrier wave comprising a compression source code segment and an encryption source code segment (such as data transmission through the Internet). The computer-readable recording medium can also be distributed over network coupled computer systems so that the computer-readable code is stored and executed in a distributed fashion. Moreover, the hard disk drive can be used with a computer, can be a portable drive, and/or can be used with a media player.

According to aspects of the present invention, an apparatus and method of generating a codebook is provided that can maintain advantages of a closed-loop communication control scheme applied in a MIMO communication system and also can be easily realized in hardware of a user equipment.

According to other aspects of the present invention, an apparatus and method of generating a codebook is provided that can more effectively transmit data in comparison to a conventional data transmission mode selecting method with respect to a user equipment, even in an environment where a value that describes a channel feature is constrained.

Although a few embodiments of the present invention have been shown and described, it would be appreciated by those skilled in the art that changes may be made to this embodiment without departing from the principles and spirit of the invention, the scope of which is defined by the claims and their equivalents. 

1. An apparatus to generate a codebook to transmit and receive data to and from a plurality of user equipment, the apparatus comprising: a matrix extender to generate a candidate matrix set by multiplying a base matrix and at least one diagonal matrix, wherein the at least one diagonal matrix includes elements of a constrained set as diagonal elements; and a codebook generator to generate the codebook where a minimum distance between the elements is maximized, based on the candidate matrix set.
 2. The apparatus according to claim 1, wherein an element of the codebook is a matrix that includes a predetermined number of columns based on a number of transmitted data streams.
 3. The apparatus according to claim 1, wherein the matrix extender generates the candidate matrix set by multiplying the base matrix and each of the diagonal matrices that are obtainable from the elements of the constrained set.
 4. The apparatus according to claim 3, wherein the codebook generator comprises: a rank matrix generator to generate rank matrices from each element of the candidate matrix set, wherein each of the rank matrices includes the same number of columns as a number of simultaneously transmitted data streams; and a rank matrix selector to select a predetermined number of rank matrices from the rank matrices and to generate the codebook.
 5. The apparatus according to claim 1, wherein the codebook generator comprises: a rank optimization unit to generate an optimized matrix set for each rank that includes optimized elements, wherein each rank denotes each of at least one transmitted data stream; and a codebook matrix selector to generate, as the codebook, a matrix set that is common among the optimized matrix set for each rank.
 6. The apparatus according to claim 5, wherein the rank optimization unit generates the optimized matrix set for each rank that includes optimized elements so that a minimum distance between columns is maximized, wherein each element includes the same number of columns as the number of transmitted data streams.
 7. The apparatus according to claim 1, wherein the base matrix is either a matrix that is generated by a digital Fourier transform (DFT), or a Hadamard matrix that satisfies orthogonality.
 8. The apparatus according to claim 1, wherein the constrained set is {1, −1, j, −j}.
 9. The apparatus according to claim 1, wherein: the codebook generator generates the codebook based on a preliminary candidate matrix set, the base matrix, and the candidate matrix set; and the preliminary candidate matrix set includes matrices with only the elements of the constrained set.
 10. The apparatus according to claim 9, wherein elements of the preliminary candidate matrix set include at least one of a matrix that is generated by DFT, a diagonal matrix, a block diagonal matrix, and/or a Hadamard matrix that satisfies orthogonality.
 11. The apparatus according to claim 1, further comprising: a second matrix extender to perform householder transform with respect to each of columns of a second base matrix and generate a second candidate matrix set, wherein the codebook generator generates the codebook based on the candidate matrix set and the second candidate matrix set.
 12. The apparatus according to claim 11, wherein, when the number of transmitted data streams is one, the codebook generator generates the codebook from a first column of each element the second candidate matrix set and all the columns of elements of the candidate matrix set.
 13. The apparatus according to claim 11, wherein when the number of transmitted data streams is two, the codebook generator generates the codebook from all columns of elements of the candidate matrix set and the second candidate matrix set.
 14. A method of generating a codebook to transmit and receive data, comprising: generating a candidate matrix set by multiplying a base matrix and at least one diagonal matrix, wherein the at least one diagonal matrix includes elements of a constrained set as diagonal elements; and generating the codebook where a minimum distance between the elements is maximized, based on the candidate matrix set.
 15. The method according to claim 14, wherein an element of the codebook is a matrix that includes a predetermined number of columns based on a number of transmitted data streams.
 16. The method according to claim 14, wherein the candidate matrix set is generated by multiplying the base matrix and all the diagonal matrices that are obtainable from the elements of the constrained set.
 17. The method according to claim 14, wherein the generating of the codebook comprises: generating an optimized matrix set for each rank that includes optimized elements, wherein each rank denotes each of at least one transmitted data stream; and generating, as the codebook, a matrix set that is common among the optimized matrix set for each rank.
 18. The method according to claim 17, wherein: the generating of the optimized matrix set for each rank comprises generating the optimized matrix set for each rank that includes optimized elements, so that the minimum distance between columns is maximized; and each element includes the same number of columns as the number of transmitted data streams.
 19. The method according to claim 14, wherein: the generating of the codebook comprises generating the codebook based on a preliminary candidate matrix set, the base matrix, and the candidate matrix set, and the preliminary candidate matrix set includes matrices with only the elements of the constrained set.
 20. The method according to claim 14, further comprising: performing householder transform with respect to each of columns of a second base matrix and generate a second candidate matrix set; wherein the generating of the codebook comprises generating the codebook based on the candidate matrix set and the second candidate matrix set.
 21. A computer-readable recording medium storing a program to implement a method of generating a codebook to transmit and receive data, the method comprising: generating a candidate matrix set by multiplying a base matrix and at least one diagonal matrix wherein the at least one diagonal matrix includes elements of a constrained set as diagonal elements; and generating the codebook where a minimum distance between the elements is maximized, based on the candidate matrix set.
 22. A communication apparatus to communicate data based on a codebook that is generated based on a candidate matrix set to maximize a minimum distance between elements; wherein the candidate matrix set is generated by multiplying a base matrix and at least one diagonal matrix that includes elements of a constrained set as diagonal elements.
 23. The communication apparatus according to claim 22, wherein an element of the codebook is a matrix that includes a predetermined number of columns based on a number of transmitted data streams.
 24. The communication apparatus according to claim 22, wherein the candidate matrix set is generated by multiplying the base matrix and all the diagonal matrices that are obtainable from the elements of the constrained set.
 25. The communication apparatus according to claim 22, wherein the generation of the codebook is further based on a second candidate matrix set that is generated by performing householder transform with respect to each of columns of a second base matrix. 